Appearance
Jump Event Types Object Reference
Demand
This Demand object defines a change to service demand.
json
{
"EventType":"Demand",
"EventId":"1",
"TriggerTime": 2,
"DemandChangeType": "AbsoluteTransitory",
"DemandPercent": 20,
"TransitoryDurationMonths": 2,
}
TIP
The code block above represents a 20% jump in demand, at 2 years, which is reversed 2 months later because the demand spike is consider transitory (e.g., a special event).
Attributes
EventType - string - required
Jump Event object of type Demand.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
DemandChangeType - string - required
Type of demand change.
Demand Change Type Codes
Code | Description |
---|---|
Percentage | Modifies the continuous service demand rate indicated in the ServiceDemandGrowthPercent property. |
AbsolutePermanent | A one-time, permanent change to absolute service demand. This shifts demand but doesn't change the ServiceDemandGrowthPercent value. |
AbsoluteTransitory | A one-time, transitory change to absolute service demand. Zypr automatically adds a second Jump Event to reverse the first Jump Event per the duration specified in the TransitoryDurationMonths property. |
TransitoryDurationMonths - numeric - conditionally required
Time when absolute transitory change event is reversed. Valid only when DemandChangeType property is 'AbsoluteTransitory'.
Performance
This Performance object defines a change to server performance.
json
{
"EventType":"Performance",
"EventId":"1",
"TriggerTime": 2,
"PerformanceType": "Server",
"PerformanceJumpPercent": 100,
}
INFO
The code example represents a 100% jump in performance at 2 years from the model run date. All new servers added at 2 years and later will have this performance rating, unless a subsequent performance jump event exists.
Attributes
EventType - string - required
Jump Event object of type Performance.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
PerformanceType - string - required
Scope of performance change.
Performance Type Codes
Code | Description |
---|---|
Server | Modifies the performance rating of a new server added to pool. |
Pool | Modifies the performance rating of all existing servers in pool. |
TIP
Jumps in performance to entire pool may arise from network or storage upgrades or adoption that improve throughput or latency, or adoption of new architectures, such incorporating DPUs or GPUs, that offload work.
PerformanceJumpPercent - numeric - optional
Percentage to adjust server performance/efficiency rating in ServerUnitCapacity property.
Process
This Process object injects an interval into the evolution process (and therefore the time-series output) at the trigger time with no required state change. Three properties provide options by which certain transactional server inventory behavior may be introduced.
json
{
"EventType": "Process",
"EventId": "6",
"TriggerTime": 1.75,
"AttemptServerReplacement": false,
"ReplacePercentageOfServers": null,
"IgnoreReplacementExchangeRate": false,
}
INFO
The code block above does nothing other than trigger a new interval.
Attributes
EventType - string - required
Jump Event object of type Process.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
AttemptServerReplacement - boolean - optional
Instructs simulation engine to attempt forcing a target server replacement rate at trigger time. Default value is false;
ReplacePercentageOfServers - numeric - optional
Percentage of servers to replace. Reaching the desired percentage is not guaranteed.
IgnoreReplacementExchangeRate - boolean - optional
Feasible remove/add transactions only occur if the exchange is deemed beneficial. A value set to 'true', will ignore this rule.
Configuration
This Configuration object modifies the NewServerConfiguration object. All added servers at or after the trigger time will be set to this configuration.
TIP
To change the performance rating of this new server configuration, add a Performance jump event with PerformanceType property set to 'Server' with the same trigger time.
json
{
"EventType": "Configuration",
"EventId": "2",
"TriggerTime": 2.25,
"ServerUnitCapacity": "130",
"ServerUnitCost": "10000",
"ProcessorSetSize": "2",
"CoreSetSize": "12",
"ServerWatts": "435",
"ServerSize": 1
}
INFO
The code block above defines a new server configuration at 2.25 years.
Attributes
EventType - string - required
Jump Event object of type Configuration.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
ServerUnitCapacity - numeric - required
Scalar value indicating server's relative efficiency rating.
ServerUnitCost - numeric - required
Unit cost of server added to inventory.
ProcessorSetSize - integer - required
Quantity of physical processors contained in a server's cpu socket.
CoreSetSize - integer - required
Quantity of cores contained in physical processor.
ServerWatts - integer - required
Electrical power consumption rating in watts.
ServerSize - integer - required
Represents a "rack unit." Valid values are 1,2,4.
Utilization Boundaries
This UtilizationBoundaries object modifies the upper and/or lower percentages in the EvolutionRules object.
json
{
"EventType":"UtilizationBoundaries",
"EventId":"1",
"TriggerTime":"1.00",
"PoolUtilizationBoundaryPercentLower": "63.5",
"PoolUtilizationBoundaryPercentUpper": "65.5",
}
Attributes
EventType - string - required
Jump Event object of type UtilizationBoundaries.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
ServerUtilizationPercentBase - numeric - required
Targeted aggregate minimum utilization percent for pool.
ServerUtilizationPercentPeak - numeric - required
Targeted aggregate maximum utilization percent for pool.
Software Stack Add
This SoftwareStackAdd object adds one or more software items to the software stack registry.
json
{
"EventType": "SoftwareStackAdd",
"EventId": "1",
"TriggerTime": 2.0,
"LicenseIds": [5]
}
INFO
The code block above adds SoftwareItemTerms object, for LicenseId 5, to the software stack at 2 years.
Attributes
EventType - string - required
Jump Event object of type SoftwareStackAdd.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
LicenseIds - integer list - required
One or more license ids.
WARNING
When adding software to the software stack registry, the license id must have a corresponding SoftwareItemTerms object in the SoftwareResources list.
Software Stack Remove
This SoftwareStackRemove object removes one or more software items from the software stack registry.
json
{
"EventType": "SoftwareStackRemove",
"EventId": "1",
"TriggerTime": 2.0,
"LicenseIds": [2]
}
INFO
The code example removes SoftwareItemTerms object, with LicenseId property value of 2, from the software stack at 2 years.
Attributes
EventType - string - required
Jump Event object of type SoftwareStackRemove.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
LicenseIds - integer list - required
One or more license ids.
Software Price Change
This SoftwarePriceChange object modifies the license fee only in the SoftwareItemTerms object.
json
{
"EventType":"SoftwarePriceChange",
"EventId":"1",
"TriggerTime": 1.5,
"LicenseId":"4",
"Fee": 750,
"PerpetualSupportPercent": 28
}
INFO
The code block above modifies the SoftwareItemTerms object for license id 4 at 1.5 years. Properties Fee and PerpetualSupportPercent may be changed from their original values.
Attributes
EventType - string - required
Jump Event object of type SoftwarePriceChange.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
LicenseId - integer - required
Unique number for identifying the specific license terms.
Fee - numeric - required
Amount paid per license. Fee may represent a one-time perpetual license fee, or annual price for a subscription.
PerpetualSupportPercent - numeric - optional
Percentage of one-time perpetual license fee that is paid annually.
Software Terms Change
This SoftwareTermsChange object modifies any term, except the AbsTermEndDate property, of a license. This jump event modifies the entire SoftwareItemTerms object.
json
[
{
"EventType": "SoftwareTermsChange",
"TriggerTime": 3,
"EventId": "4",
"Terms": {
"LicenseId": 5,
"LicenseMetric": "Processor",
"LicenseClass": "Perpetual",
"ContractType": "Coterminous",
"EntitlementExtremaResetBasis": "Never",
"TermLength": 3,
"Fee": 5000,
"PerpetualSupportPercent": 28,
"ExtremaResetBufferPercent": 0,
"InitialEntitlementQty: null,
"ConsumptionRules": {
"Operator": "Or",
"Rules": [
{
"Id": "1",
"RequiredLicenseQty": 1,
"MemberName": "CoreSetSize",
"Operator": "LessThanOrEqual",
"TargetValue": 32
},
{
"Id": "2",
"Operator": "And",
"RequiredLicenseQty": 2,
"Rules" [
{
"Id": "2.1",
"MetricName": "CoreSetSize",
"Operator": "GreaterThan",
"TargetValue": 32
},
{
"Id": "2.2",
"MetricName": "CoreSetSize",
"Operator": "LessThanOrEqual",
"TargetValue": 64
}
]
},
{
"Id": "4",
"RequiredLicenseQty": 3,
"MemberName": "CoreSetSize",
"Operator": "GreaterThan",
"TargetValue": 64
}
]
}
}
}
]
INFO
The code block reflects changes to vendor terms that now require three processor licenses when a processor core quantity (i.e., CoreSetSize) exceeds 64, whereas previously only two processor licenses were required for processor core quantity above 32.
Additionally, the InitialEntitlementQty property value was set to null. The null value informs Zypr to set the total entitlement positions equal to the total required positions with respect to hardware count at the trigger time. This avoids a position shortage if the License Class is 'Perpetual' (i.e., no license fee for additional require licenses).